package day3.HomeWork;

/**
 * ClassName：Test4
 *
 * @Author：小鱼
 * @Create：2025-08-20 19:18
 */
public class Test4 {
    //编写程序，创建线程，将该线程睡眠，然后打断该线程睡眠状态，查看是否被打断。
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(){
            @Override
            public void run(){
                try {
                    System.out.println("子线程进入睡眠");
                    Thread.sleep(1000);
                    System.out.println("子线程睡眠正常结束");
                } catch (InterruptedException e) {
                    // 捕获中断异常，打印中断信息
                    System.out.println("子线程在睡眠中被打断！");
                    // 查看中断状态（注意：InterruptedException会清除中断标记）
                    System.out.println("子线程被打断后的中断状态：" + Thread.currentThread().isInterrupted());
            }
                }
        };
        t1.start();
        System.out.println(t1.getState());
        System.out.println(t1.getState());

        //不和子线程抢，让子线程执行run（）
        Thread.sleep(300);
        System.out.println(t1.getState());
        System.out.println(t1.getState());


        // 打断子线程的睡眠
        System.out.println("主线程执行打断操作...");
        t1.interrupt();

        // 再等待片刻，观察子线程被打断后的状态
        Thread.sleep(500);
        System.out.println("子线程被打断后，当前状态：" + t1.getState());

    }
}
